package jgl.vajra.management.part.mine.contract;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import jgl.vajra.management.bean.LieEarnAmountBean;
import jgl.vajra.management.bean.LieEarnCommissionBean;
import jgl.vajra.management.databinding.ActivityLieEarnBinding;
import jgl.vajra.management.widget.mvvm.model.BaseModel;
import jgl.vajra.management.widget.mvvm.view.BaseMVVMView;
import jgl.vajra.management.widget.mvvm.viewmodel.BaseViewModel;

public class LieEarnContract {
    public abstract static class Model extends BaseModel {

        public abstract Observable<LieEarnAmountBean> getLieEarnData(Map<String, Object> map);

        public abstract Observable<List<LieEarnCommissionBean>> getLieEarnCommissionData(Map<String, Object> map);

        public abstract Observable<String> getSpreadLevelData(Map<String, Object> map);

        public abstract Observable<String> getLieEarnBalanceData(Map<String, Object> map);

        public abstract Observable<String> getWithdrawalBalanceData(Map<String, Object> map);
    }

    public interface View extends BaseMVVMView {
        void onBusinessCode();

        void onWithdrawal();

        void onCommissionDetails();

        void onWithdrawalRecord();

        void onGeneralPromoter();

        void onMyTeam();

        void returnLieEarnAmountData(LieEarnAmountBean data);

        void returnLieEarnCommissionBean(List<LieEarnCommissionBean> data);

        void returnSpreadLevelData(String data);

        void returnLieEarnBalanceData(String data);
    }

    public abstract static class ViewModel extends BaseViewModel<View, ActivityLieEarnBinding, Model> {

        public abstract void getLieEarnData(Map<String, Object> map);

        public abstract void getLieEarnCommissionData(Map<String, Object> map);

        public abstract void getSpreadLevelData(Map<String, Object> map);

        public abstract void getLieEarnBalanceData(Map<String, Object> map);

        public abstract void getWithdrawalBalanceData(Map<String, Object> map);

    }
}
